import store from "../store";

//父子应用share通信，share是全局状态池子，利用redux进行实现，
//用于弥补乾坤自带通信方法不能实现的功能
//addNum、 getToken 和 setToken 是例子，模拟子应用对父应用redux的存取操作
//后续根据需要在 reducers 增加 reducer 和 在 下方Shared 对象中增加子应用的操作方法

//shared 对象是父应用暴露给子应用的调用方法，根据需要增加方法
class Shared {
  /**
   * 修改消息数量
   */
  addNum() {
    store.dispatch({
      type: "ADD_MESSAGE_NUM",
    });
  }

  /**
   * 获取 Token
   */
  getToken() {
    const state = store.getState();
    return state.token || "";
  }

  /**
   * 设置 Token
   */
  setToken(token) {
    // 将 token 的值记录在 store 中
    store.dispatch({
      type: "SET_TOKEN",
      payload: token,
    });
  }
}

const shared = new Shared();
export default shared;
